Environment
This page describes the Environment step of a solution. There you build a 3D model of the robot cell, check how well the robot reaches the bin, and compare the model with a real scan. It applies to Bin Picking Studio (BPS) solutions only, the CAD Picking and AI Picking solution types.
The page has a 3D viewer on the left and four tabs on the right:
Tab |
What you do there |
|---|---|
Build the collision model of the cell: bins, the floor, walls and other objects. |
|
Move the virtual robot, show its working space and set the joint limits. |
|
Show the calibrated vision systems in the cell and check the model against a scan. |
|
Define states of the cell that the robot program can switch between. |
A typical order of work:
Build the scene of the cell and click Save scene.
Set the joint limits on the Robot tab.
Click Generate to check the robot working space over the bin.
After calibration, check the scene with a scan and move the models where needed.
If the cell changes during picking, add scene states.
Scene
Path planning checks every trajectory for collisions with the point cloud, but the sensor never sees the whole cell. Objects outside its view, or hidden behind others, must be in the scene as collision objects. The scene must match the real cell at least within the reach of the robot.
The Scene tab of a palletizing cell. The whole cell is one uploaded CAD model, Demo Cell. Red frames: Add object and the object list.
The help text of the Studio gives these tips for the scene:
The origin of the scene (point [0, 0, 0]) should be aligned with the origin of the robot base.
Collision objects should be made of simple bodies, such as boxes, that envelop everything in the working space of the robot. Make them slightly larger (“inflated”) than the real objects to avoid any chance of a collision. This also covers small differences between bins, and between the model and the real cell.
Keep CAD models at a reasonable number of faces. A large model may slow down path planning.
For a robot mounted on a wall or the ceiling, rotate the scene to match the real cell, see Robot mount orientation.
Object list
The object list is a tree. An object can have child objects, so you can move a whole group by moving its parent: for example, put several bins on a pallet and move only the pallet. Use + / − next to a parent to expand or collapse it, and drag an object onto another one to make it a child.
Each object has these controls:
Sync icon – shows whether the object is saved (Object synced).
Show object / Hide object – shows or hides the object in the viewer.
Duplicate object – adds a copy of the object.
Delete object – removes the object. Deleting a parent also deletes its children.
When the solution has more scene states, objects that belong to one state show its ID, and the state buttons above the list (1, 2, …) show one state at a time. See Scene States.
To add an object, click Add object and choose:
Upload STL – a CAD model of the object. Enter a name, choose the file and select the type.
Box, Sphere or Cylinder – a simple shape drawn in the viewer.
Group – an empty object that only holds child objects.
When an object is selected, the button changes to Add child object and adds the new object under the selected one.
Every object has one of three types:
Type |
Colour |
Use it for |
|---|---|---|
Bin |
Blue |
Every model of a bin. |
Environment |
Grey |
Other real objects near the robot. |
Virtual collision object |
Red, semi-transparent |
Objects that are not real, for example to keep the robot out of an area or to show the walls of the cell while you can still see the robot inside. |
Edit form and 3D object tools
Click an object in the list or in the viewer to select it. The selected object is red in the viewer, and the Edit scene object form opens below the list.
The Edit scene object form of an uploaded CAD model
Field |
Description |
|---|---|
Scene State |
Any, or the scene state the object belongs to. See Scene states. The field is shown when the solution has more than one scene state. |
Name |
The name of the object. |
Type |
Bin, Environment or Virtual collision object. |
Width / Height / Depth [mm] |
The size of a box. A sphere has a radius, a cylinder a radius and a height. |
CAD file (mesh) |
Uploaded objects only: download or replace the STL model. For large files the Studio warns that “Bin Picking performance increases with the usage of smaller files” and suggests simplifying the model by reducing the number of faces. |
Scale |
Uploaded objects only: the scale of the model. The default is 1. |
Position X/Y/Z [mm] |
The position of the origin of the object, relative to the origin of its parent. |
Rotation X/Y/Z [°] |
The rotation of the object around its own origin. |
The form can also show Opacity of object and Color of object. A group has only a name, a position and a rotation.
The 3D object tools below the viewer move the selected object with a marker:
Move, Rotate, Scale and Resize – drag the arrows or circles of the marker. Resize is for boxes and cylinders. To move by an exact amount, click an arrow or circle and type the value.
self / parent – rotate around the origin of the object or of its parent.
Close – ends the editing of the object.
After a change, the Save scene button above the list becomes active (it shows Saved when there is nothing to save). Save the scene before you use the Robot tab: the virtual robot works only with a saved scene.
Robot
The Robot tab needs a selected robot and a gripper with a tool point. It moves the virtual robot in the scene, shows its working space and sets the joint limits. Nothing you do here moves the real robot.
The Robot tab of the palletizing cell. Red frames: Motion mode, the joint values and sliders, and Default pose with the copy and paste buttons and Highlight collisions. This robot has no Rapid IK solver, so the tab shows a note instead of Generate of the working space.
Robot controls
Motion mode decides how you move the robot:
Motion mode |
How you move the robot |
|---|---|
Joint |
One joint at a time: drag its slider or type its value. Degrees / Radians switches the units. |
Linear - Tool coordinate system |
Move the tool point along the axes of the tool. Drag the marker at the tool point, drag its arrows (move) and circles (rotate), or type the pose. |
Linear - Robot base coordinate system |
The same, along the axes of the robot base. |
Robot module |
Shows the robot as reported by the robot module. Without a connected robot, the tab shows Robot disconnected!. |
Moving the virtual robot joint by joint in Joint mode
The other controls:
Default pose – moves the robot to its default position.
Copy joints / Paste joints – copy the current joint values to the clipboard, or move the robot to copied values.
Highlight collisions ON / OFF – marks parts of the robot that collide.
Joint limits always apply when you move the robot. When a pose cannot be reached, the tab shows Unable to compute inverse kinematics (“It may be caused by robot reach, joint limits or robot singularities”). When the robot collides, it shows Robot is in collision (“Collision with environment or robot itself”).
Linear - Tool coordinate system mode: the marker at the tool point (arrows move, circles rotate) and the Tool point position fields
Robot working space
Click Generate to show where the robot can reach, with the current joint limits. The Studio’s help: “Robot’s ability to reach any place in the bin in various orientations is crucial for successful path planning. On the other hand, too much room for movement can also be a source of path planning failures.”
The robot working space. Green points can be reached from almost all directions, red points only from a few.
Aim for points in the upper, greener half of the colour range inside the bin and above it, where path planning takes place.
Note
The working space is available only for robots with the Rapid IK solver. For other robots the tab shows “Robot working volume is not available for robots without Rapid IK.”
Joint limits
Joint limits restrict the space in which path planning looks for trajectories. In bin picking the robot needs only part of its range, and good joint limits make path planning faster and more successful. Until you set them, the tab shows “Joint limits are not configured. It is strongly recommended to Set joint limits.”
Each joint has a lower and an upper limit, in degrees or radians.
“If a limit field is empty, the manufacturer’s default restrictions will be used. A user-set limit can only restrict the predefined range, not enlarge it.”
Limits that are too tight make path planning fail. Leave some room, and check with the robot controls and the working space that the robot reaches every part of the bin with different gripper orientations.
Click Save to apply the limits. Until then, the Studio warns that the joint limits are “in an inconsistent state with the robot control module”.
Joint limits of the CAD Picking example solution. The grey values of joints 3 and 5 are empty fields that show the manufacturer’s limit.
Changing the robot model resets the joint limits, see Selecting a robot.
Vision
The Vision tab lists the vision systems of the solution with their calibration status. Use it to check that the collision objects, especially the bins, are where the real ones are.
The Vision tab of the palletizing cell with one vision system expanded. Both vision systems have a simulated calibration.
Each vision system shows one of these calibration states:
Calibrated – it can be used to check the scene.
Uncalibrated – calibrate it first, see Calibration.
Simulated calibration – the sensor was placed in the scene by hand (see Edit below). A solution with such a vision system cannot be deployed in production mode.
Click a vision system to expand it:
Sensor ID – with the state of the sensor, for example Connected, Unreachable or Occupied / Not ready.
Calibration space and sensor position – the calibration type.
Visibility – shows or hides the sensor model, its scanning volume and its origin.
Trigger – takes a scan and shows it in the viewer. While the sensor is not connected, the button is Connect.
Position / Rotation – the pose of the sensor from the calibration.
Edit – move the sensor in the scene by hand. Save to vision system stores the pose as a simulated calibration. It is useful for tuning settings without a calibration, but not for production.
Note
For a MultiView vision system, only the primary sensor is shown and can scan.
A hand-eye vision system appears only when a robot is selected.
Only one sensor can be connected at a time. If several vision systems use the same sensor, it is connected in all of them, and also on the PhoXi page.
Checking the scene with a scan
With a calibrated vision system, trigger a scan and move the collision objects until their models overlap the point cloud.
A scan over the scene of the CAD Picking example solution. The points of the bin lie on the blue bin model, so the bin is in the right place.
Scene States
When the cell changes during picking, for example when a cover opens or a second bin moves in, use scene states. An object assigned to a state is in the collision model only while that state is active. The robot program switches states with the Change scene state request.
|
|
Scene state 1 |
Scene state 2 |
Managing scene states
The Scene States tab with two states. Red frames: Add scene state and the list of states.
By default the scene has one state. A solution can have up to four.
Click Add scene state to add one.
Each state shows its ID and name, a sync icon, a Show state / Stop showing state button, Initial or Set initial, and Delete scene state.
One state is always Initial. It becomes active when the solution is deployed, and it cannot be deleted.
Select a state to edit its Unique ID, which the robot program uses to request it, and an optional Name.
Scene states on the Scene tab
The Scene State field of an object is Any (the object is in every state) or one state.
Child objects have the scene state of their parent.
The state buttons above the object list show one state at a time. With none selected, all objects are shown.
Scene states on the Robot tab
The Active Scene State selector on the Robot tab chooses the state the virtual robot works with. The viewer reloads with the selected state.